The present invention relates to the field of distributed file systems, and, more particularly, to optimizing the selection of nodes when handling client requests in a distributed file system (DFS) based on a determined performance index.
A file system is a method that allows computer systems to store and organize computer files such that users are provided with an easy way to find and access the files. A specialized file system used in a computer network environment is called a distributed file system (DFS), such as the DFS 120 illustrated in system 100 of FIG. 1. A DFS 120 is a single file system that has been distributed across several physical computers, called DFS nodes 140, 150, 160, and 170. The data 145, 155, 165, and 175 that are scattered across the multiple DFS nodes 140, 150, 160, and 170 appear to the clients 102, 104, and 106 as if they all exist on the same server. The quantity of nodes and the actual distribution of the files are completely transparent to the client applications requesting data.
When handling client data requests, the master node 130 determines which DFS node 140, 150, 160, or 170 is capable of providing the requested data. The master node 130 uses the information stored in the internal mapping table 135 and a selection algorithm, such as a “round robin” or “least frequently used” method, to select a DFS node 140, 150, 160, and 170. Such selection algorithms, however, are static in nature and do not take into account the current state and/or utilization of the DFS nodes 140, 150, 160, and 170 and/or computer network 110 at the time of selection.
The overall performance of the DFS 120 can be greatly diminished by this inefficient selection process. For example, a selected DFS node 140, 150, 160, and 170 may reside in a segment of the network 110 that is experiencing heavy traffic. When the selected DFS node 140, 150, 160, or 170 is under a heavy load, the fulfillment of the client request is delayed. Long delays can result in the request timing out and not being fulfilled at all.
Additionally, this present situation results in the over-utilization of some DFS nodes 140, 150, 160, and/or 170 and the under-utilization of other DFS nodes 140, 150, 160, and/or 170. For example, a “round robin” method can result in DFS nodes 140 and 160 being selected to fulfill requests for “/share3” in addition to requests for “/share1”, which DFS nodes 140 and 160 are the only access points. This approach under-utilizes DFS node 170 to handle requests for “/share3”, of which it is a dedicated access point.